package admin_image_api

import (
	"blog_go/models/res"
	"blog_go/service"
	"blog_go/service/image_ser"
	"github.com/gin-gonic/gin"
	"github.com/sirupsen/logrus"
)

// ImagesUploadApi 上传单个图片
// @Tags 图片管理
// @Summary 上传单个图片
// @Description 上传单个图片
// @Param image formData file true "文件上传"
// @Param token header string true "token"
// @Router /api/admin/image/upload [post]
// @Produce json
// @Success 200 {object} res.Response{data=image_ser.FileUploadResponse}
func (AdminImageAPI) ImagesUploadApi(c *gin.Context) {
	file, err := c.FormFile("image")
	if err != nil {
		logrus.Error(err)
		panic(err)
	}
	logrus.Info(file.Filename, file.Header, file.Size)
	ser := service.ServiceGroupApp.ImageSer.ImageUploadSer(file, c)
	// 返回上传后的路径
	res.OkWithDate(ser, c)
}

// ImagesUploadMoreApi 上传多个
// @Tags 图片管理
// @Summary 上传多个
// @Description 上传多个
// @Param images formData file true "文件上传多个"
// @Param token header string true "token"
// @Router /api/admin/image/upload_more [post]
// @Produce json
// @Success 200 {object} res.Response{data=[]image_ser.FileUploadResponse}
func (AdminImageAPI) ImagesUploadMoreApi(c *gin.Context) {
	form, err := c.MultipartForm()
	if err != nil {
		logrus.Error(err)
		panic(err)
	}
	fileList, ok := form.File["images"]
	if !ok {
		panic("文件不存在")
	}
	var result []image_ser.FileUploadResponse
	// map使用forr 是k,v for则是一个k没有v  list使用forr是index,val 使用for是index
	for k, v := range fileList {
		logrus.Info(k)
		logrus.Info(v.Filename, "---", v.Header, "---", v.Size)
		result = append(result, service.ServiceGroupApp.ImageSer.ImageUploadSer(v, c))
	}
	res.OkWithDate(result, c)
}
